package com.acsior.hibernate.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.acsior.dac.impl.hibernate.vo.GeneratorKey;

/**
 * FaxSubject entity. @author MyEclipse Persistence Tools <b><i>powered by
 * Belev</i></b>
 */
@Entity
@Table(name = "fax_services")
@GeneratorKey(tableName = "service_requests")
public class FaxServiceVO extends ServiceRequestVO {

	private static final long serialVersionUID = -1702495477536374103L;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "recipient_customer_id", nullable = false)
	private CustomerVO customerByRecipientCustomer;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "sender_customer_id", nullable = false)
	private CustomerVO customerBySenderCustomer;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "deliver_employee_id")
	private EmployeeVO deliverEmployee;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "deliver_structure_id")
	private StructureVO deliverStructure;

	@Column(name = "fax_time", nullable = false)
	private Long faxTime;

	@Column(name = "is_fax_number_sent")
	private boolean isFaxNumberSent;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "nom_countries_id", nullable = true)
	private NomCountryVO nomCountry;

	@Column(name = "phone_notification", nullable = false)
	private boolean phoneNotification;

	@Column(name = "receive_date", length = 23)
	private Date receiveDate;

	@Column(name = "received_page_count")
	private Integer receivedPageCount;

	@Column(name = "send_as_packet")
	private boolean sendAsPacket;

	@Column(name = "sent_page_count", nullable = false)
	private Integer sentPageCount;

	/** default constructor */
	public FaxServiceVO() {
		super();
	}

	/** @return the customerByRecipientCustomer */
	public CustomerVO getCustomerByRecipientCustomer() {
		return this.customerByRecipientCustomer;
	}

	/** @return the customerBySenderCustomer */
	public CustomerVO getCustomerBySenderCustomer() {
		return this.customerBySenderCustomer;
	}

	/** @return the deliverEmployee */
	public EmployeeVO getDeliverEmployee() {
		return this.deliverEmployee;
	}

	/** @return the deliverStructure */
	public StructureVO getDeliverStructure() {
		return this.deliverStructure;
	}

	/** @return the faxTime */
	public Long getFaxTime() {
		return this.faxTime;
	}

	/**
	 * @return the country
	 */
	public NomCountryVO getNomCountry() {
		return this.nomCountry;
	}

	/** @return the receiveDate */
	public Date getReceiveDate() {
		return this.receiveDate;
	}

	/** @return the receivedPageCount */
	public Integer getReceivedPageCount() {
		return this.receivedPageCount;
	}

	/** @return the sentPageCount */
	public Integer getSentPageCount() {
		return this.sentPageCount;
	}

	/**
	 * @return the isFaxNumberSent
	 */
	public boolean isFaxNumberSent() {
		return this.isFaxNumberSent;
	}

	/**
	 * @return the phoneNotification
	 */
	public boolean isPhoneNotification() {
		return this.phoneNotification;
	}

	/**
	 * @return the sendAsPacket
	 */
	public boolean isSendAsPacket() {
		return this.sendAsPacket;
	}

	/**
	 * @param customerByRecipientCustomer
	 *            the customerByRecipientCustomer to set
	 */
	public void setCustomerByRecipientCustomer(CustomerVO customerByRecipientCustomer) {
		this.customerByRecipientCustomer = customerByRecipientCustomer;
	}

	/**
	 * @param customerBySenderCustomer
	 *            the customerBySenderCustomer to set
	 */
	public void setCustomerBySenderCustomer(CustomerVO customerBySenderCustomer) {
		this.customerBySenderCustomer = customerBySenderCustomer;
	}

	/** @param deliverEmployee */
	public void setDeliverEmployee(EmployeeVO deliverEmployee) {
		this.deliverEmployee = deliverEmployee;
	}

	/** @param deliverStructure */
	public void setDeliverStructure(StructureVO deliverStructure) {
		this.deliverStructure = deliverStructure;
	}

	/**
	 * @param isFaxNumberSent
	 *            the isFaxNumberSent to set
	 */
	public void setFaxNumberSent(boolean isFaxNumberSent) {
		this.isFaxNumberSent = isFaxNumberSent;
	}

	/**
	 * @param faxTime
	 *            the faxTime to set
	 */
	public void setFaxTime(Long faxTime) {
		this.faxTime = faxTime;
	}

	/**
	 * @param country
	 *            the country to set
	 */
	public void setNomCountry(NomCountryVO country) {
		this.nomCountry = country;
	}

	/**
	 * @param phoneNotification
	 *            the phoneNotification to set
	 */
	public void setPhoneNotification(boolean phoneNotification) {
		this.phoneNotification = phoneNotification;
	}

	/**
	 * @param receiveDate
	 *            the receiveDate to set
	 */
	public void setReceiveDate(Date receiveDate) {
		this.receiveDate = receiveDate;
	}

	/**
	 * @param receivedPageCount
	 *            the receivedPageCount to set
	 */
	public void setReceivedPageCount(Integer receivedPageCount) {
		this.receivedPageCount = receivedPageCount;
	}

	/**
	 * @param sendAsPacket
	 *            the sendAsPacket to set
	 */
	public void setSendAsPacket(boolean sendAsPacket) {
		this.sendAsPacket = sendAsPacket;
	}

	/**
	 * @param sentPageCount
	 *            the sentPageCount to set
	 */
	public void setSentPageCount(Integer sentPageCount) {
		this.sentPageCount = sentPageCount;
	}

}